package base.string;

/*
3，获取一个字符串在另一个字符串中出现的次数。
	"abkkcdkkefkkskk"
	思路：
	1，定义个计数器。
	2，获取kk第一次出现的位置。
	3，从第一次出现位置后剩余的字符串中继续获取kk出现的位置。每获取一次就计数一次。
	4，当获取不到时，计数完成。

*/

public class StringTest2 {

    /*
	练习三。对于查找字符串中重复字母的个数，使用了indexOf根据据脚标来定位
来完成，脚标一下只能定位一次，所以要重复使用，当引用substring
的特点结合脚标定位，打印出现字母脚标以后的内容，然后重复使用
次方法

	*/

    public static int getSubCount(String str, String key) {
        int count = 0;
        int index = 0;

        while ((index = str.indexOf(key)) != -1)    //在这里对index进行赋值key的坐标是为了判定的方便，在下面赋值也可以
        {
            sop("str=" + str);
            str = str.substring(index + key.length());    //在这里需要加上key的长度

            count++;
        }
        return count;
    }

    /*
    练习三，方式二。

    */
    public static int getSubCount_2(String str, String key) {
        int count = 0;
        int index = 0;

        //从指定位置开始indexOf，在判定语句
        while ((index = str.indexOf(key, index)) != -1) {
            sop("index=" + index);
            index = index + key.length();
            count++;
        }
        return count;
    }

    public static void main(String[] args) {
        String str = "kkabkkcdkkefkks";
        ///sop("count====="+str.split("kk").length);不建议使用。
        sop("count=" + getSubCount_2(str, "kk"));
    }

    public static void sop(String str) {
        System.out.println(str);
    }

}
